package edu.hawaii.duedates.libraries;

import java.io.Serializable;
import edu.hawaii.duedates.datastore.ResultsList;

/**
 * An interface for classes representing libraries.
 * 
 * @author Arthur Shum and Erin Kim.
 */
public interface ILibrary extends Serializable {

  /**
   * Retrieves information about a patron's checked out library items by logging in to this 
   * library's website using the patron's username and password.
   * 
   * @return A ResultsList containing information about checked-out items.
   * @throws Exception If an error occurs while retrieving info.
   */
  public ResultsList getInfo() throws Exception;

  /**
   * Returns the library's name.
   * @return The library's name.
   */
  public String getName();
  
  /**
   * Returns the user's name.
   * 
   * @return The user's name.
   */
  public String getUsername();

  /**
   * Returns the user's password.
   * 
   * @return The user's password.
   */
  public String getPassword();


  /**
   * Set the user's name.
   * 
   * @param username The name to set the user's name to. 
   */
  public void setUsername(String username);
    
  /**
   * Sets the user's password.
   * 
   * @param password The password to set the user's password to.
   */
  public void setPassword(String password);
  
}
